package com.liang.bishi.other;

import java.util.Scanner;

/**
 * 长度为 n 只包含小写字母的字符串 S,下标1开始。进行 n 次操作, 第 i 次操作将 Si 移动到宁符串未尾。输出 n 次操作后的字符串。
 * 例如字符串"abqde" ,第一步"bqdea" , 第二步"bdeaq", 第三步"bdaqe", 第四步"bdaeq”, 第五步bdaeq"
 */
public class Problem01 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.next();

        int n = str.length(); // 获取字符串长度

        StringBuilder sb = new StringBuilder(str);
        // paectc
        // 进行 n 次操作，每次将第 i 个字符移动到末尾
        for (int i = 0; i < n; i++) {
            char ch = sb.charAt(i);     // 获取第 i 个字符
            sb.deleteCharAt(i);         // 删除该字符
            sb.append(ch);              // 将该字符添加到末尾
            System.out.println(sb);
        }

        // 输出最终结果
        System.out.println(sb);

        // System.out.println(getResult3(str));
    }

    // paectc
    public static String getResult3(String str) {
        StringBuilder sb = new StringBuilder(str);
        StringBuilder res = new StringBuilder();
        int n = sb.length();
        for (int i = 0; i < n; i++) {
            // char ch = sb.charAt(i);
            res = new StringBuilder(sb.substring(0, i)).append(sb.substring(i + 1)).append(sb.charAt(i));
            sb = res;
        }
        return new String(res);
    }

    public static String getResult2(String str) {
        int n = str.length();
        char[] chars = str.toCharArray();
        for (int i = 0; i < n; i++) {
            char ch = chars[i];
            if (n - 1 - i >= 0) System.arraycopy(chars, i + 1, chars, i, n - 1 - i);
            chars[n - 1] = ch;
        }
        return new String(chars);
    }

    // 1-4: 1 2 3 4
    public static int getResult(int n, int k) {
        int points = 0;
        for (int i = 0; i < k; i++) {
            int selected = 2 * i + 1;
            if (selected <= n) {
                points++;
            }
        }
        return points;
    }

}